package domain

type AiBoxRequest struct {
	RequestId      string    `json:"requestId"`      //请求标识
	RecordId       string    `json:"recordId"`       //历史唯一标识
	CameraName     string    `json:"cameraName"`     //相机名称
	Timestamp      int64     `json:"timestamp"`      //时间戳，单位毫秒
	Type           string    `json:"type"`           //算法大类
	DeviceSn       string    `json:"deviceSn"`       //设备序列号
	CameraId       string    `json:"cameraId"`       //相机ID
	CameraOutId    string    `json:"cameraOutId"`    //相机外部ID
	IsRetryMessage int       `json:"isRetryMessage"` //是否是重复消息
	Data           AiBoxData `json:"data"`           //数据
}

type AiBoxData struct {
	Type            int         `json:"type"`
	Target          int         `json:"target"`
	AreaName        string      `json:"areaName"`
	DetectedPicture string      `json:"detectedPicture"`
	FullPicture     string      `json:"fullPicture"`
	TrackID         string      `json:"trackId"`
	PersonCount     int         `json:"personCount"`
	Hour            string      `json:"hour"`        //时间段。格式："2020010110"
	EnterNumber     int         `json:"enterNumber"` //进入人数，累计人数
	LeaveNumber     int         `json:"leaveNumber"` //离开人数，累计人数
	CountNumber     int         `json:"countNumber"` //基于单帧的人数统计结果
	FaceObj         Face        `json:"face"`
	RecognitionObj  Recognition `json:"recognition"`
}

// =========================== 人脸/人体抓拍推送 ==================================
type Face struct {
	Quality     float64 `json:"quality"`     //人脸图片的检测质量（-1：未检测）
	Age         int     `json:"age"`         //人脸图片检测年龄（-1：未检测）
	Gender      int     `json:"gender"`      //人脸图片检测性别（-1：未检测，0：女，1：男）
	Image       string  `json:"image"`       //人脸图片的 base64 编码
	WearMask    string  `json:"wearMask"`    //是否戴口罩（0：未检测，1：戴口罩，2：未戴口罩）
	WearGlasses string  `json:"wearGlasses"` //是否戴眼镜（0：未检测，1：戴眼镜，2：未戴眼镜）
}

type Recognition struct {
	MatchLibName string  `json:"matchLibName"` //匹配库名称
	MatchID      string  `json:"matchId"`      //匹配 ID
	MatchDegree  float64 `json:"matchDegree"`  //匹配度[0, 100]
	MatchName    string  `json:"matchName"`    //匹配姓名
	MatchImage   string  `json:"matchImage"`   //匹配照片的 base64 编码
	PersonId     string  `json:"personId"`     //人员 ID，为系统自动生成的人员Id
	SerialNumber string  `json:"serialNumber"` //人员编号（人员外部 Id），为第三方平台在添加人员时携带的字段
}

type Body struct {
	TopLength    int    `json:"topLength"`    //上衣类型
	TopColor     int    `json:"topColor"`     //上衣颜色
	BottomLength int    `json:"bottomLength"` //下衣类型
	BottomColor  int    `json:"bottomColor"`  //下衣颜色
	Inhand       int    `json:"inhand"`       //手持箱包类型
	Image        string `json:"image"`        //人体图片的 base64 编码
}
